home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
Z-Misc Series
/
(k)zd.d64
/
txt.bootusa
< prev
next >
Wrap
Text File
|
2007-03-01
|
10KB
|
309 lines
║LM1:RM37
6. ╠ISTING OF ┬╧╧╘╒╙┴
---------------------
├300 PHA ;SAVE ACCU ON STACK
├301 LDA $9┴ ;GET OUTPUT UNIT
├303 CMP #$03 ;OUTPUT ON SCREEN?
├305 BEQ $├30┴ ;YES, THEN TO NEW ROUTINE
├307 JMP $╞1─5 ;BACK TO ╦┼╥╬┴╠
├30┴ PLA ;
├30┬ PHA ;GET BYTE IN ACCU
├30├ STA $─7 ;SAVE BYTE IN $D7
├30┼ TXA ;
├30╞ PHA ;SAVE X ON STACK
├310 TYA ;
├311 PHA ;SAVE Y ON STACK
├312 LDA $─7 ;GET BYTE AGAIN
├314 LDX $├59┼ ;READ LEADIN-FLAG
├317 BEQ $├329 ;NO LEADIN?
├319 STA $2─ ;SAVE ERROR NUMBER
├31┬ LDA #$00 FALSE IN ACCU
├31─ STA $├59┼ RESET LEADIN FLAG
├320 LDA $0800 SET ERROR FLAG
├323 JSR $├341 ERROR MESSAGE
├326 JMP $┼6┴8 END ROUTINE
├329 CMP #$07 CHR$(7) ?
├32┬ BNE $├333 NOT CHR$(7)-TEST
├32─ JSR $├5┬5 BEEP!
├330 JMP $┼6┴8 END ROUTINE
├333 CMP #$1┬ CHR$(27)?(LEADIN)
├335 BNE $├33┼ NOT, THEN GIVE OUT
├337 LDA #$╞╞ TRUE IN ACCU
├339 STA $├59┼ SET LEADIN FLAG
├33├ BNE $├330 END ROUTINE
├33┼ JMP $┼71─ OUTPUT CHAR
├341 JSR $├9┬╞ OUTPUT MESSAGE
├344 RTS ROOM FOR A JMP
├345 00 FREE
├346 00 FREE
├347 LDA #$00 POINTER ON $C400
├349 LDY #$├4
├34┬ STA $0324
├34┼ STY $0325 CHRIN TO $C400
├351 LDA #$00 POINTER TO $C300
├353 LDY #$├3
├355 STA $0326
├358 STY $0327 CHROUT TO $C300
├35┬ LDA #$51
├35─ STA $19┬0
├360 JMP $├8┼5 CON INIT ON $C8E5
├363 CMP #$0┬ ^K?
├365 BNE $├377 NOT, THEN TEST
├367 LDA #$20 SPACE TO ERASE
├369 LDY $─3 READ CURCOL
├36┬ STA ($─1),Y ERASE LINE
├36─ INY NEXT CHAR ON LINE
├36┼ CPY $─5 LENGHT OF LINE?
├370 BCC $├36┬ LESS, THEN TEST
├372 BEQ $├36┬ ERASE LAST CHAR
├374 JMP $├4├┴ WAIT FOR NEXT KEY
├377 CMP #$15 ^U?(START OF LINE)
├379 BNE $├381 NOT, THEN TEST
├37┬ LDA #$00
├37─ STA $─3 ZERO CURCOL
├37╞ BEQ $├374 WAIT FOR NEXT KEY
├381 CMP #$0╞ ^L (END OF LINE)
├383 BNE $├395 NOT SPECIAL
├385 LDY $─5 LENGTH OF LINE
├387 LDA ($─1),Y GET CHAR
├389 CMP #$20 IS IT A SPACE?
├38┬ BNE $├390 FOUND EOL
├38─ DEY NO, LOOK BACK ONE
├38┼ BNE $├387 NOT BOL
├390 STY $─3 CURSOR AT BOL
├392 JMP $├4├┴ NEXT KEY
├395 RTS NOT SPECIAL
├396 LDA #$94 CODE INSERT
├398 JSR $┼716 OUTPUT ON SCREEN
├39┬ LDA #$00
├39─ STA $─8 INSERTS=ZERO
├39╞ JMP $┼6┴8 END OF ROUTINE
├3┴2-├3╞╞ SCRATCH AREA (FOR
FUTURE EXTENSIONS)
├400 LDA $99 WHAT INPUT DEVICE?
├402 BNE $├40╞ BACK TO ╦┼╥╬┴╠
├404 LDA $─3 CURCOL
├406 STA $├┴ SET CURCOL
├408 LDA $─6 CURROW
├40┴ STA $├9 SET CURROW
├40├ JMP $├469 SPECIAL CHARACTER
├40╞ JMP $╞166 TO ╦┼╥╬┴╠
├412 JSR $├477 OUTPUT CHAR
├415 LDA $├6 READ #CHARS IN BUFF ├417 STA $├├ 0 = CURSOR FLASH
├419 STA $0292 0 = AUTO SCROL DOWN
├41├ BEQ $├415 WAIT FOR KEY
├41┼ SEI NOW NO INTERRUPTS
NO FLASHING CURSOR
├41╞ LDA $├╞ CURSOR ON?
├421 BEQ $├42╞ JUMP IF NOT ON
├423 LDA $├┼ CHAR UNDER CURSOR
├425 LDX $0287 COLOR UNDER CURSOR
├428 LDY #$00
├42┴ STY $├╞ CURSOR OFF
├42├ JSR $┼┴13 RESET CHAR&COLOR
├42╞ JSR $┼5┬4 GET KEY
├432 JSR $├4┴1 TEST SPECIAL
├435 CMP #$0─ WAS IT RETURN?
├437 BNE $├412 NO, THEN PRINT
├439 LDY $─5 GET LINE LENGTH
├43┬ STY $─0 SET CR FLAG TRUE
├43─ LDA ($─1),Y READ CHAR FROM LINE
├43╞ CMP #$20 IS IT A SPACE?
├441 BNE $├446 NO, TEST PREVIOUS
├443 DEY BACK ONE
├444 BNE $├43─ START OF LINE?
├446 INY ONE FORWARD
├447 STY $├8 MARK AS END OF LINE
├449 LDY #$00
├44┬ STY $0292 SET AUTO SCROL DOWN
├44┼ STY $─3 CURCOL
├450 STY $─4 QUOTE MODE OFF
├452 LDA $├9 GET LINE NUMBER
├454 BMI $├471 READ FROM BOL
├456 LDX $─6 GET LINE NUMBER
├458 JSR $┼6┼─ LOGICAL NUMBER
├45┬ CPX $├9 = INPUT LINE #?
├45─ BNE $├471 NO, READ FROM BOL
├45╞ LDA $├┴ GET CURCOL
├461 STA $─3 SET INDEX
├463 CMP $├8 EOL?
├465 BCC $├471 IF SMALLER THEN READ
├467 BCS $├474 GREATER OR EQUAL, THEN READ NEW LINE
├469 TYA
├46┴ PHA SAVE Y-REGISTER
├46┬ TXA
├46├ PHA SAVE X-REGISTER
├46─ LDA $─0 GET CR FLAG
├46╞ BEQ $├415 READ NEW LINE
├471 JMP $┼63┴ NOT THEN TO ╦┼╥╬┴╠ (TEKEN LEZEN)
├474 JMP $┼65─ READ LINE
├477 PHA SUBROUTINE; OUTPUT CHAR
├478 STA $─7 SAVE CHAR IN $D7
├47┴ TXA
├47┬ PHA SAVE X REGISTER
├47├ TYA
├47─ PHA SAVE Y REGISTER
├47┼ LDA $─7 GET CHAR
├480 CMP #$22 OUPUT QUOTE?
├482 BNE $├48╞ NOT, THEN TEST
├484 BIT $├4┴0 QUOTE MODE ON?
├487 BMI $├48├ JMP IF 7TH BIT IS SET (QUOTEMODE ON)
├489 JMP $┼693 NO QUOTEMODE
├48├ JMP $┼73╞ QUOTE MODE
├48╞ CMP #$94 CODE FOR INSERT?
├491 BEQ $├496 YES, THEN OUTPUT
├493 JMP $┼71─ NO SPECIAL CHAR: NORMAL ROUTINE
├496 BIT $├4┴0 INSERT MODE ON?
├499 BVS $├493 BIT 6 SET, THEN INSERT MODE
├49┬ JMP $├396 OUTPUT WITHOUT INSERT MODE
├49┼ 00 FREE
├49╞ 00 FREE
├4┴0 00 QUOTEFLAG BIT 7:1 = QUOTE MODE
BIT 6:1 = INSERT MODE
├4┴1 CMP #$16 ^V ? (SET COLORS) - USA-VERSION: COLORS ARE CHANGED
├4┴3 BNE $├4┬7 NOT, THEN TEST
├4┴5 LDA #$0┬ COLOR 11 (= GREY 1)
├4┴7 STA $─020 SET BORDER COLOR
├4┴┴ LDA #$00 COLOR 0 (= BLACK)
├4┴├ STA $─021 SET BACKGROUND COLOR
├4┴╞ LDA #$01 COLOR 1 (= WHITE)
├4┬1 STA $0286 SET TEXT COLOR
├4┬4 JMP $├4├┴ EDIT LINE
├4┬7 CMP #$17 ^W ? (SET COLORS)
├4┬9 BNE $├4├╞ NOT, THEN TEST
├4┬┬ LDA #$0┼ COLOR 14 (= LIGHT BLUE)
├4┬─ STA $─020 SET BORDER COLOR
├4├0 LDA #$06 COLOR 6 (= BLUE)
├4├2 STA $─021 SET BACKGROUND COLOR
├4├5 LDA #$0┼ COLOR 14 (= LIGHT BLUE)
├4├7 STA $0286 SET TEXT COLOR
├4├┴ PLA
├4├┬ PLA NO RTS, SO GET 2 BYTES FROM STACK
├4├├ JMP $├415 EDIT MODE
├4├╞ CMP #$01 ^A ? (ERASE INDENTION)
├4─1 BNE $├50┼ NOT, THEN TEST
├4─3 LDA $─5 GET FYSICAL LINE LENGTH
├4─5 CMP #$28 LINE LENGTH EQUALS 40?
├4─7 BCC $├4├┴ YES, THEN READY
├4─9 LDY #$28 ON POSITION 4
├4─┬ LDA ($─1),Y READ 41TH CHARAVTER
├4── CMP #$20 IS IT A SPACE?
├4─╞ BNE $├4├┴ NOT, THEN READY (NO INDENTION)
├4┼1 LDA $─3 GET X-POSITION CURSOR
├4┼3 PHA SAVE POSITION
├4┼4 LDA #$00
├4┼6 PHA ZERO ONSTACK
├4┼7 LDA #$00
├4┼9 STA $─8 NUMBER OF INSERTS = 0
├4┼┬ LDY #$29 SEARCH FROM 42TH CHARACTER
├4┼─ LDA ($─1),Y READ CHAR
├4┼╞ CMP #$20 IS IT A SPACE?
├4╞1 BNE $├4╞┴ NOT, THEN FIRST CHAR FOUND
├4╞3 INY NEXT CHAR?
├4╞4 CPY #$50 LAST CHAR?
├4╞6 BCC $├4┼─ NOT, THEN TEST
├4╞8 BCS $├506 YES, THEN BACK ON STACK AND READY
├4╞┴ STY $─3 X-POSITIE CURSOR ON THAT CHARACTER
├4╞├ LDA #$14 CODE FOR DELETE
├4╞┼ JSR $┼716 ERASE SPACE
├501 DEY POSITION MINUS ONE
├502 CPY #$29 40TH CHARACTER?
├504 BCS $├4╞┼ NOT, THEN ERASE MORE SPACES
├506 PLA
├507 STA $─8 NUMBER OF INSERTS = 0
├509 PLA
├50┴ STA $─3 X-POSITION BACK
├50├ BPL $├4├┴ EDIT MODE
├50┼ CMP #$83 CODE FOR SHIFT ╥╒╬/╙╘╧╨ ?
├510 BNE $├516 NOT, THEN TEST
├512 LDA #$84 REPLACE CODE BY $84
├514 BNE $├51┼ HANDLE AS IF FUNCTION KEY
├516 CMP #$85 F1
├518 BCC $├540 LESS, THEN NO FUNCTION KEY
├51┴ CMP #$8─ F8+1
├51├ BCS $├540 GREATER OR EQUAL, THEN NO FUNCTION KEY
├51┼ SEC SET CARRY
├51╞ SBC #$84 MINUS $84
├521 ASL A MULT WITH 2
├522 STA $├543 SAVE VALUE
├525 ASL A AGAIN
├526 ASL A MULTIPLIED WITH 8
├527 ADC $├543 ADD 2*NUMBER (= 10*NUMBER)
├52┴ TAX USE RESULT AS INDEX
├52┬ LDY #$00 Y = 0
├52─ LDA $├544,X GET FUNCTION TEXT
├530 BEQ $├53┬ LAST CHAR THEN READY
├532 STA $0277,Y TEXT IN KEYBOARDBUFFER
├535 INX INDEX + 1
├536 INY NEXT CHAR IN BUFFER
├537 CPY #$0┴ 10TH CHARACTER?
├539 BCC $├52─ NOT, THEN READ ON
├53┬ STY $├6 PUT NUMBER OF CHARS IN BUFFER
├53─ JMP $├4├┴ READY AND EDIT
├540 JMP $├363 TEST ON SPECIAL CHARS
├543 00 TEMPORARY FOR MULT WITH 10
├544-├54─ TEXT FOR SHIFT+╥╒╬/╙╘╧╨
├54┼-├557 TEXT FOR ╞1
├558-├561 TEXT FOR ╞3
├562-├56┬ TEXT FOR ╞5
├56├-├575 TEXT FOR ╞7
├576-├57╞ TEXT FOR ╞2
├580-├589 TEXT FOR ╞4
├58┴-├593 TEXT FOR ╞6
├594-├59─ TEXT FOR ╞8
├59┼ 00 FLAG LEADIN
├59╞ 00 FREE
├5┴0 LDX #$18 NUMBER OF ╙╔─ REGISTERS IN X
├5┴2 LDA #$00 0 IN ACCU
├5┴4 STA $─400,X RESET REGISTER X
├5┴7 DEX NEXT REGISTER
├5┴8 BPL $├5┴4 MORE THEN JUMP
├5┴┴ RTS READY
├5┴┬ JSR $├5┴┴ WAIT (EMPTY SUBROUTINE)
├5┴┼ DEX X:-1
├5┴╞ BNE $├5┴┬ JUMP FOR LONGER WAITING
├5┬1 DEY Y:-1
├5┬2 BNE $├5┴┬ JUMP FOR LOMGER WAITING
├5┬4 RTS READY
├5┬5 JSR $├5┴0 INIT ╙╔─
├5┬8 LDX #$03 SET FIRST 4 REGISTERS
├5┬┴ LDA $├5╞6,X GET VALUE FROM TABLE
├5┬─ STA $─400,X SET REGISTER (TONE, PULSE, TIME)
├5├0 DEX X:-1
├5├1 BPL $├5┬┴ IF NOT LAST REG, THEN JUMP
├5├3 LDA $├5╞┬ READ ATTACK AND DECAY
├5├6 STA $─405 SET ATTACK AND DECAY
├5├9 LDA $├5╞├ READ SUSTAIN AND RELEASE
├5├├ STA $─406 SET SUSTAIN EN RELEASE
├5├╞ LDA $├5╞─ READ VOLUME
├5─2 STA $─418 SET VOLUME
├5─5 LDA $├5╞┴ READ SOUND TYPE
├5─8 ORA #$01 SET GATE BIT
├5─┴ STA $─404 SET SOUND TYPE AND GATEBIT IN ╙╔─
├5── LDY $├5╞┼ READ GATE TIME
├5┼0 JSR $├5┴┬ AND WAIT FOR GATE
├5┼3 LDA $├5╞┴ RESET GATE BIT
├5┼6 STA $─404